package com.synjones.zeuscloudweb.service;

import com.synjones.zeus.model.web.AdminBean;
import com.synjones.zeuscloudweb.util.ccl.datastructure.impl.BaseDto;

import java.util.List;

/**
 * @author  yys
 * Description: 系统用户管理Service
 * @date  created in 15:12 2018-01-08
 * Modified by:
 */
public interface AdminService {
 /**
   *  查询注册帐户名是否被占用
   *  @param username 注册用户名
   *  @author yys
   *  Description:  查询注册帐户名是否被占用
   *  @date  15:24 2018-01-08
   *  @return  int
   *  throws
   */
    int selectCountAdminByAdminName(String username);
 /**
   *  管理员添加
   *  @param  adminBean 用户实体
   *  @param  roleId 角色ID
   *  @author yys
   *  Description:  管理员添加
   *  @date  16:23 2018-01-08
   *  @return  BaseDto
   *  throws
   */
    BaseDto insertAdmin(AdminBean adminBean , String roleId);
 /**
   *  分页获取管理员列表
   *   @param startTime 开始时间
   *   @param endTime 结束时间
   *  @param orderColumn 排序字段
   *  @param orderDir 排序方式
   *  @param adminBean 条件查询
   *  @author yys
   *  Description:  分页获取管理员列表
   *  @date  14:14 2018-01-09
   *  @return   List<AdminVO>
   *  throws
   */    
    List<AdminBean> selectAdminByPage(String startTime ,String endTime,String orderColumn, String orderDir, AdminBean adminBean);
 /**
   *  修改管理员启用/停用状态
   *  @param adminBean
   *  @author yys
   *  Description:  修改管理员启用/停用状态
   *  @date  11:57 2018-01-10
   *  @return
   *  throws
   */
    void updateAdminAvailable(AdminBean adminBean);
 /**
   *  不同条件获取管理员列表
   *  @param adminBean
   *  @author yys
   *  description
   *  @date  17:15 2018-01-10
   *  @return  List<AdminBean>
   *  throws
   */
    List<AdminBean> selectAdmin(AdminBean adminBean);
 /**
   *  修改用户信息
   *  @param adminBean
   *  @param roleId 角色Id
   *  @author yys
   *  description
   *  @date  9:43 2018-01-11
   *  @return
   *  throws
   */
 BaseDto updateAdminByUserId(AdminBean adminBean,String roleId);
 /**
   *  批量删除用户
   *  @param userIds
   *  @author yys
   *  Description:  批量删除用户
   *  @date  15:39 2018-01-11
   *  @return  BaseDto
   *  throws
   */
    BaseDto deleteAdminByUserId(String[] userIds);
 /**
   *  根据userId获取管理员信息
   *  @param userId
   *  @author yys
   *  Description:  根据userId获取管理员信息
   *  @date  9:54 2018-01-12
   *  @return  AdminVO
   *  throws
   */
    AdminBean selectAdminByUserId(String userId);
}
